package com.iring.service.proxy;

import java.util.List;

import com.iring.domain.proxy.Username;

/**
 * @author wanggan
 */
public interface ProxyService {

    /**
     * 查询当前realm下所有的sip账户
     *
     * @return 所有的sip账户信息的用户名
     * 正确返回<code>[{"username":"testgw1"},{"username":"testgw2"}]</code>
     * 错误返回<code>null</code>
     */
    List<Username> ListAllSipAccounts();

    /**
     * 获取某个账户是否存在
     *
     * @param user
     *          需要查询的用户名
     * @return  如果存在则,返回<code>true</code>,
     * 如果不存在则返回<code>false</code>
     * 如果错误,则返回<code>null</code>
     */
    Boolean isSipUsernameExist(String user);

    /**
     * 创建sip账户信息
     *
     * @param user
     *          sip账户名
     * @param pass
     *          sip账户密码
     * @return  创建成功,返回<code>true</code>
     * 如果账户名已经存在返回<code>false</code>
     * 如果错误,则返回<code>null</code>
     */
    Boolean createSipAccount(String user, String pass);

    /**
     * 更新sip账户信息
     *
     * @param user
     *          需要更改信息的sip账户名
     * @param pass
     *          需要更改信息的sip账户密码
     * @return  修改密码成功返回<code>true</code>
     * 如果密码与之前一致返回<code>false</code>
     * 如果错误,则返回<code>null</code>
     */
    Boolean updateSipAccount(String user, String pass);


    /**
     * 删除sip账户
     *
     * @param user
     *          sip账户名
     * @return  如果删除成功返回<code>true</code>
     * 如果账户不存在,返回<code>fasle</code>
     * 如果错误,则返回<code>null</code>
     */
    Boolean deleteSipAccount(String user);
}
